#ifndef _DROPCOUNTER_H_
#define _DROPCOUNTER_H_
#include "MgrBase.h"
#include "SimpleRefection.h"
class DropCounter:public ReflectionBase
{
	DECL_REFLECTION(DropCounter,"../../config/DropCounter.xml");
public:
	int32			m_iID;
	std::string		m_sDisplayName;
	EDropCounter	m_eCounter;
	uint32			m_nMatchNum;
	int32			m_iNextNum;
	int32			m_iFixedDropID;

	rewrite virtual void OnArchieveReaded(){};

private:
};
typedef DefMangerTpl<DropCounter> __DropCounterManager;

class DropCounterManager :public  __DropCounterManager
{
public:
	static DropCounterManager& Instance()
	{
		static DropCounterManager _instance;
		return _instance;
	}
	rewrite virtual void OnArchieveReaded();
	int32 GetFixedDropID( EDropCounter eCounter,uint32 iCount) const;
	int32 GetNextCount( EDropCounter eCounter,uint32 iCount) const;
private:
	DropCounterManager(){}
	std::vector<const DropCounter*> m_vDropCounters[EDropCounter_NUM];
	//std::map<uint32,std::pair<int32,int32>> m_vCounterMaps[EDropCounter_NUM];
};
#endif